package com.xwaiy.xwaiyrpc.model;

import cn.hutool.core.util.StrUtil;
import lombok.Data;

/**
 * 注册信息
 * @Author Xwaiy
 * @Date 2025/8/26 11:48
 **/
@Data
public class ServiceMetaInfo {

    // 服务名称
    private String serviceName;

    // 服务版本
    private String version = "1.0";

    // 服务域名
    private String serviceHost;

    // 服务端口号
    private Integer servicePort;

    // 服务分组
    private String serviceGroup = "default";

    /**
     * 获取服务键名
     * @return
     */
    public String getServiceKey(){
        return String.format("%s:%s", serviceName, version);
    }

    /**
     * 获取服务注册节点
     * @return
     */
    public String getServiceNodekey(){
        return String.format("%s:%s:%s", getServiceKey(), serviceHost,servicePort);
    }

    /**
     * 获取完整服务地址
     * @return
     */
    public String getServiceAddress() {
        if(!StrUtil.contains(serviceHost,"http")) {
            return String.format("http://%s:%s", serviceHost, servicePort);
        }
        return String.format("%s:%s", serviceHost, servicePort);
    }

}
